package com.zdkj.subway.stm.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zdkj.common.core.entity.BaseEntity;
import com.zdkj.subway.stm.util.LocalDateTimeConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 车票盘点数据
 *
 * @author songtuo
 * @date 2020-07-11 22:08:18
 */
@Data
@TableName("sw_st_ticket_check")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "车票盘点数据")
public class SwStTicketCheck extends BaseEntity<SwStTicketCheck> {
    private static final long serialVersionUID = 1L;
    /**
     * 唯一标识
     */
    @TableId
    @ExcelIgnore
    @ApiModelProperty(value = "唯一标识")
    private Integer id;
    /**
     * 线路编码
     */
    @ExcelIgnore
    @ApiModelProperty(value = "线路编码")
    private String lineCode;
    /**
     * 车站编码
     */
    @ExcelIgnore
    @ApiModelProperty(value = "车站编码")
    private String stationCode;
    /**
     * 盘点时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @ExcelProperty(value = "盘点时间", converter = LocalDateTimeConverter.class, index = 0)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "盘点时间")
    private LocalDateTime checkTime;
    /**
     * 预制单程票数量
     */
    @ApiModelProperty(value = "预制单程票数量（张）")
    @ExcelProperty(value = "预制单程票数量", index = 4)
    private Integer prefabricatedTicket;

    /**
     * 应急纸票数量
     */
    @ExcelProperty(value = "应急纸票数量", index =5)
    @ApiModelProperty(value = "应急纸票数量")
    private Integer emergencyPaperTicket;
    /**
     * 单程票压票合计
     */
    @ExcelProperty(value = "单程票压票合计", index = 1)
    @ApiModelProperty(value = "单程票压票合计")
    private Integer pressureNumber;
    /**
     * 营销车票数量
     */
    @ExcelProperty(value = "营销车票数量", index = 3)
    @ApiModelProperty(value = "营销车票数量")
    private Integer marketingNumber;
    /**
     * 单程票实际盘点数量合计
     */
    @ExcelProperty(value = "单程票实际盘点数量合计", index = 2)
    @ApiModelProperty(value = "单程票实际盘点数量合计")
    private Integer realCheckNumber;
    /**
     * 单程票结存
     */
    @ExcelProperty(value = "单程票结存", index = 6)
    @ApiModelProperty(value = "单程票结存")
    private Integer ticketBalance;
    /**
     * 客运值班员
     */
    @ExcelIgnore
    @ApiModelProperty(value = "客运值班员")
    private Integer workPersonId;

    /**
     * 客运值班员名称
     */
    @ApiModelProperty(value = "客运值班员名称")
    @ExcelProperty(value = "客运值班员", index = 7)
    private String workPersonName;

    /**
     * 客运值班员工号
     */
    @ApiModelProperty(value = "客运值班员工号")
    @ExcelProperty(value = "客运值班员工号", index = 8)
    private String workPersonJobNo;
    /**
     * 复核人
     */
    @ApiModelProperty(value = "复核人")
    @ExcelIgnore
    private Integer reviewPersonId;

    /**
     * 复核人
     */
    @ApiModelProperty(value = "复核人")
    @ExcelProperty(value = "复核人", index =10)
    private String reviewPersonName;
    /**
     * 复核人名称
     */
    @ExcelProperty(value = "复核人工号", index =11)
    @ApiModelProperty(value = "复核人工号")
    private String reviewPersonJobNo;
    /**
     * 0未提交1已提交2审批通过3异常通知4已确认
     */
    @ApiModelProperty(value = "0未提交1已提交2审批通过3异常通知4已确认")
    @ExcelProperty(value = "状态", index =12)
    private String status;

    /**
     * 异常通知内容
     */
    @ExcelIgnore
    @ApiModelProperty(value = "异常通知内容")
    private String abnormalNotictContent;
    /**
     * 异常原因
     */
    @ApiModelProperty(value = "异常通知内容")
    @ExcelProperty(value = "异常通知内容", index =13)
    private String abnormalNotictReason;   /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @ExcelProperty(value = "创建时间", converter = LocalDateTimeConverter.class, index = 9)
    private LocalDateTime createTime;
    /**
     * 备注
     */
    @ExcelProperty(value = "备注", index =14)
    @ApiModelProperty(value = "备注")
    private String remark;
}
